home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Invent.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  2KB  |  119 lines

  1. #include "stdafx.h"
  2.  
  3. cInventory::cInventory(cInventory **list)
  4. {
  5.     remaining = -1;
  6.     icon = 0;
  7.     
  8.     add((cList **)list);
  9. }
  10.  
  11. cInventory::~cInventory()
  12. {
  13. }
  14.  
  15. void cInventory::fire(cSpot *, int, int, fix, cGameObject *)
  16. {
  17. }
  18.  
  19. cInventoryMine::cInventoryMine(cInventory **list) : cInventory(list)
  20.     fire_delay = 2 * sec;
  21.     icon = mine_icon;
  22.     remaining = NUM_MINES;
  23. }
  24.  
  25. void cInventoryMine::fire(cSpot *o, int x, int y, fix, cGameObject *owner)
  26. {
  27.     if (o != 0)
  28.         x += o->x, y -= o->y;
  29.     
  30.     new cMine (x, y, owner);
  31.     
  32.     remaining--;
  33.     
  34.     if (remaining <= 0)
  35.         delete this;
  36. }
  37.  
  38. cInventoryBullet::cInventoryBullet(cInventory **list) : cInventory(list)
  39. {
  40.     fire_delay = BULLET_FIRE_DELAY;
  41. }
  42.  
  43. void cInventoryBullet::fire(cSpot *o, int x, int y, fix angle, cGameObject *owner)
  44. {
  45.     if (o != 0)
  46.         x += o->x, y -= o->y;
  47.     
  48.     new cBullet (x, y, angle, owner);
  49.     
  50.     new cEffect (x, y, bullet, "FIRE");
  51. }
  52.  
  53. cInventorySpread::cInventorySpread(cInventory **list) : cInventory(list)
  54. {
  55.     fire_delay = SPREAD_FIRE_DELAY;
  56.     icon = spread_gun_icon;
  57.     remaining = NUM_SPREAD;
  58. }
  59.  
  60. void cInventorySpread::fire(cSpot *o, int x, int y, fix angle, cGameObject *owner)
  61. {
  62.     if (o != 0)
  63.         x += o->x, y -= o->y;
  64.     
  65.     new cBullet (x, y, angle, owner);
  66.     new cBullet (x, y, angle - (fix)25, owner);
  67.     new cBullet (x, y, angle + (fix)25, owner);
  68.     
  69.     new cEffect (x, y, bullet, "FIRE");
  70.     
  71.     remaining--;
  72.     
  73.     if (remaining <= 0)
  74.         delete this;
  75. }
  76.  
  77. cInventoryRocket::cInventoryRocket(cInventory **list) : cInventory(list)
  78. {
  79.     fire_delay = ROCKET_FIRE_DELAY;
  80.     icon = rocket_icon;
  81.     remaining = NUM_ROCKET;
  82. }
  83.  
  84. void cInventoryRocket::fire(cSpot *o, int x, int y, fix angle, cGameObject *owner)
  85. {
  86.     if (o != 0)
  87.         x += o->x, y -= o->y;
  88.     
  89.     new cRocket (x, y, angle, owner);
  90.     
  91.     new cEffect (x, y, rocket, "FIRE");
  92.     
  93.     remaining--;
  94.     
  95.     if (remaining <= 0)
  96.         delete this;
  97. }
  98.  
  99. cInventoryThumper::cInventoryThumper(cInventory **list) : cInventory(list)
  100. {
  101.     fire_delay = THUMPER_FIRE_DELAY;
  102.     icon = thumper_icon;
  103.     remaining = NUM_THUMPER;
  104. }
  105.  
  106. void cInventoryThumper::fire(cSpot *o, int x, int y, fix, cGameObject *owner)
  107. {
  108.     if (o != 0)
  109.         x += o->x, y -= o->y;
  110.     
  111.     new cThumper (x, y);
  112.     
  113.     remaining--;
  114.     
  115.     if (remaining <= 0)
  116.         delete this;
  117. }
  118.